1. Statement of the Technical Field
The present invention relates to the field of autonomic computing and more particularly to application of parsing rules to incoming messages in a message adapter.
2. Description of the Related Art
Beginning with the advent of enterprise computing, the complexity of computing technology has increased exponentially in pace with the increasing number innovative technologies available for deployment in the enterprise. The revered Moore's Law has driven tremendous growth in the information technology sector and has been seen as the cornerstone of technological advancement. Still, those at the forefront of deploying and managing new computing technologies have recognized that with the increasing number and complexity of computing technologies comes a price: technology management.
That is to say, the principal aim of interoperability has become increasingly more difficult to attain given the requirement that each component in the enterprise must be monitored and managed. Where in the past the enterprise had previously consisted but of a few, standardized components, presently, the enterprise can include a vast number of disparate components, each able to perform magnificently within specified operational parameters, or dismally outside specified operational parameters. Thus, while it may seem to the lay person that future challenges lie with the development of many new technologies having even more capabilities, one skilled in the art will recognize that the true, future challenge lies squarely within the management of technologies which likely already exist.
In the famed manifesto, Autonomic Computing: IBM's Perspective on the State of Information Technology, Paul Horn, Senior Vice President of IBM Research, observed, “It's not about keeping pace with Moore's Law, but rather dealing with the consequences of its decades-long reign.” Given this observation, Horn suggested a computing parallel to the autonomic nervous system of the biological sciences. Namely, whereas the autonomic nervous system of a human being monitors, regulates, repairs and responds to changing conditions without any conscious effort on the part of the human being, in an autonomic computing system, the system must self-regulate, self-repair and respond to changing conditions, without requiring any conscious effort on the part of the computing system operator.
Thus, while the autonomic nervous system can relieve the human being from the burden of coping with complexity, so too can an autonomic computing system. Rather, the computing system itself can bear the responsibility of coping with its own complexity. The crux of the IBM manifesto relates to eight principal characteristics of an autonomic computing system:                I. The system must “know itself” and include those system components which also possess a system identify.        II. The system must be able to configure and reconfigure itself under varying and unpredictable conditions.        III. The system must never settle for the status quo and the system must always look for ways to optimize its workings.        IV. The system must be self-healing and capable of recovering from routine and extraordinary events that might cause some of its parts to malfunction.        V. The system must be an expert in self-protection.        VI. The system must know its environment and the context surrounding its activity, and act accordingly.        VII. The system must adhere to open standards.        VIII. The system must anticipate the optimized resources needed while keeping its complexity hidden from the user.        
Notably, in accordance with the eight tenants of autonomic computing, the automated management of individual components within a computing solution can require the periodic communication to a solution manager of the status of the individual components. Presently, in conventional component management systems, individual components communicate different aspects of their status to the solution manager, including, for instance, component configuration, component performance, component resource consumption, and significant changes in the normal operation or environment of the component. In this regard, the data collected during this process can be vital to the solution manager's monitoring, regulating and ensuring the continuous operation of the solution.
In a solution consisting of many heterogeneous components, the problem of monitoring the status of each component can be compounded by the sheer diversity of message types and formats of the various status messages received from the respective different components in the solution. In this regard, individual component developers typically compose and format status messages as will be convenient to the component developers rather than the solution manager. To accommodate the disparate composition and format of the messages, message adapters often are disposed in between the components and the solution manager and configured with parsing rules to match the different formats and types of messages which can be received from the disparate components. By matching the proper parsing rule with a corresponding message, the message adapter can properly adapt the message for recognition and processing within the solution manager.
U.S. Pat. No. 5,361,353 to Carr et al. for SYSTEM FOR PARSING MESSAGE UNITS FROM AN UNSTRUCTURED MESSAGE STREAM OF INTERLEAVED MESSAGE UNITS TO FORM STRUCTURED MESSAGES illustrates one such prior art attempt to adapt disparately formatted messages to a uniform format. Specifically, in the message structuring system of the Carr invention, each message in a message stream can be parsed using parsing rules of known patterns and delimiting characters to extract the message components or tokens. Structuring rules subsequently can be applied to determine the interrelationship between two or more messages. In this way, the Carr system can recover information and meaning not explicitly contained in the plain text message by analyzing preceding message lines. Finally, the Carr system can construct a structured message based upon the parsed components and software recovered information.
Nevertheless, in a high-transaction environment, where a high volume of incoming messages must be matched against every parsing rule, the parsing rules must be processed sequentially in a top-down or bottom-up order to locate a suitable match between the incoming message and a parsing rule. Yet, the processing of locating matching parsing rules in a list of parsing rules can be time consuming and tedious. Often, the process of locating matching rules can create a bottleneck within the message adapter giving rise to a performance deterioration in the entire solution. Accordingly, there remains a long-felt unsolved need for a mechanism through which the process of locating matching rules in a list of parsing rules can be expedited while avoiding the deficiencies of the known art.